<?php
/**
 * Created by PhpStorm.
 * User: 86188
 * Date: 2021/3/30
 * Time: 19:28
 */

namespace app\admin\job;
use app\service\billService;
use think\Log;
use think\queue\Job;
use think\Db;

class BillSysncPaid
{
    /**
     * fire方法是消息队列默认调用的方法
     * @param Job            $job      当前的任务对象
     * @param array|mixed    $data     发布任务时自定义的数据
     */
    public function fire(Job $job,$data){
        // 如有必要,可以根据业务需求和数据库中的最新数据,判断该任务是否仍有必要执行.
        //执行发票开票

        $isJobDone = $this->doInvoiceJob($data);
        print("<info>BillInvoice Job Started. job Data is: ".var_export($isJobDone,true)."</info> \n");

        if ($isJobDone) {
            $job->delete();

        }else{
            if ($job->attempts() > 3) {
                //记录开票推送失败的记录
                $job->delete();
                $redis = new \Redis();
                $redis->connect('127.0.0.1',6379);
                $redis->auth("zaozao2019@");
                $redis->select(3);
                $re=$redis->rpush("BillSysncPaidFailed",$data["id"]);


            }
        }
    }

    public function doInvoiceJob($data){
        return true;

    }
    public function invoiceData($id){




    }




    /**
     * 根据消息中的数据进行实际的业务处理
     * @param array|mixed    $data     发布任务时自定义的数据
     * @return boolean                 任务执行的结果
     */


    public function failed(\Exception $e){
        //php think queue:work --queue BillInvoiceQueue --daemon
        //php think queue:work --queue BillInvoiceQueue
        //file_put_contents("failed.txt","yang",FILE_APPEND);
        print("<info>failed".$e->getMessage()."</info>\n");

    }
}